Providing alternative content in a windowed environment

ABSTRACT

Embodiments of the invention relate to an architecture or extension to a window manager. In particular, the extension can provide for a window rotation feature that can be exposed as a rotate button. Additionally or alternatively, the rotation feature can be activated based upon a diverse set of conditions, events, and/or commands. Upon activation of the rotation feature, the window manager can rotate a window about an axis to expose a secondary surface that can be populated with alternative content that is distinct from the content of the primary surface of the window. In addition, the architecture provides techniques for identifying both double-sided graphical objects and potentially double-sided objects.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.13/361,451, filed Jan. 30, 2012, entitled “PROVIDING ALTERNATIVE CONTENTIN A WINDOWED ENVIRONMENT,” which is a continuation of U.S. patentapplication Ser. No. 11/767,810, filed Jun. 25, 2007, now issued as U.S.Pat. No. 8,112,770, entitled “PROVIDING ALTERNATIVE CONTENT IN AWINDOWED ENVIRONMENT” and claims the benefit of U.S. Provisional PatentApplication Ser. No. 60/870,926, filed Dec. 20, 2006, entitled“ARCHITECTURES FOR SEARCH AND ADVERTISING.” The disclosures of each ofthese applications is hereby incorporated herein in their entirety byreference.

BACKGROUND

Conventionally, in a windowed-based environment such as acomputer-oriented desktop environment, windows and other graphicalobjects that constitute portions of a user interface are substantiallytreated as single-sided, two-dimensional objects. Some windows areexpressly designed to appear like real-world objects, yet these virtualrepresentations commonly lack certain features that are present in thereal-world objects. For instance, some windows are expressly configuredto appear as physical paper, a physical note card, a physical posterboard, etc., yet irrespective of the computer-based features added tothe window, the window still lacks some of the features of a physicalpiece of paper.

While window managers associated with, say, an operating system,typically employ numerous bells and whistles to “dress up” windows andprovide numerous convenient options or features, such conventionalefforts still lack one of the properties of a physical object. Inparticular, windows and many other two-dimensional graphical userinterface objects are thought of as single-sided objects. In contrast,even a common, thin sheet of paper may be thought of as atwo-dimensional object, yet a user of the paper inherently understandsthat the sheet of paper is double-sided, which is a notion that is notinherent in desktop computing environments.

Moreover, while certain applications, such as a solitaire card game, forinstance, treat cards as double-sided objects, this aspect isimplemented by the application and is not associated with a windowmanager feature. Accordingly, this aspect only applies in the context ofthe application.

SUMMARY

The following presents a simplified summary of the claimed subjectmatter in order to provide a basic understanding of some aspects of theclaimed subject matter. This summary is not an extensive overview of theclaimed subject matter. It is intended to neither identify key orcritical elements of the claimed subject matter nor delineate the scopeof the claimed subject matter. Its sole purpose is to present someconcepts of the claimed subject matter in a simplified form as a preludeto the more detailed description that is presented later.

The subject matter disclosed and claimed herein, in one aspect thereof,comprises an extension to a computer-implemented window manger forconstructing double-sided objects out of tradition single-sided windowsor other graphical objects in a manner that can be applied beyond thecontext of a single application. In accordance with one aspect of theclaimed subject matter, the window manager can be extended to include arotation feature that can rotate a window substantially 180 degreesabout an x- or y-axis in order to expose a secondary surface. Therotation feature can be implemented as a rotate button to be displayedand/or accessible by various window types. The rotate button can signalthe window manager to rotate a particular window, yet it is to beappreciated that the window manager can rotate the window based uponother criteria as well.

In accordance with another aspect of the claimed subject matter, thesecondary surface can be populated with alternative content that caninclude advertisements, rewards, incentives, coupons, games or puzzles,additional content associated with the original content of the window,different formats or visualizations of the original content of thewindow, and so forth. In addition, the alternative content can beselected based upon a wide variety of criteria including but not limitedto window size/position, demographics, interaction histories, a biddingmodel, original window contents, preferences, and so on.

According to another aspect of the claimed subject matter, anarchitecture can be provided for detecting windows that are double-sidedsuch as playing cards in a card game application as well as potentiallydouble-sided windows such as conventional windows, icons, menus, tabs,etc. For potentially double-sided windows the architecture can selectalternative content as well as appropriate times to display thealternative content by rotating the window to expose the secondarysurface. For graphical objects detected to already be double-sidedobjects, the architecture can determine or infer whether one of thesides includes content that is non-essential (e.g., the pattern side ofa playing card), and overlay that side with the alternative content.

The following description and the annexed drawings set forth in detailcertain illustrative aspects of the claimed subject matter. Theseaspects are indicative, however, of but a few of the various ways inwhich the principles of the claimed subject matter may be employed andthe claimed subject matter is intended to include all such aspects andtheir equivalents. Other advantages and distinguishing features of theclaimed subject matter will become apparent from the following detaileddescription of the claimed subject matter when considered in conjunctionwith the drawings.

DESCRIPTION OF THE DRAWINGS

Illustrative embodiments of the invention are described in detail belowwith reference to the attached drawing figures, and wherein:

FIG. 1 is a block diagram of a computer-implemented system that canextend an operating system window manager with a rotation ApplicationProgramming Interface (API);

FIG. 2 illustrates a graphical representation of an example potentiallydouble-sided window.

FIG. 3 depicts a block diagram a computer-implemented system with anextended window manager and a selection component;

FIG. 4 illustrates a block diagram of a variety of examples ofalternative content;

FIG. 5 is a block diagram of a computer-implemented system that selectsalternative content;

FIG. 6 illustrates a block diagram of a computer-implemented system thatcan rotate a window based upon an occurrence of an event;

FIG. 7 is an example system that can display a window with embeddedrotation features;

FIG. 8 depicts a computer-implemented system that can facilitate displayof alternative content;

FIG. 9 illustrates a computer-implemented system for displayingalternative content;

FIG. 10 is an exemplary flow chart of procedures that define a computerimplemented method for extending an operating system window manager API;

FIG. 11 is an exemplary flow chart of procedures for a computerimplemented method with additional features for extending an operatingsystem window manager API;

FIG. 12 depicts an exemplary flow chart of procedures defining acomputer implemented method with additional features for extending anoperating system window manager API;

FIG. 13 illustrates a block diagram of a computer operable to executethe disclosed architecture; and

FIG. 14 illustrates a schematic block diagram of an exemplary computingenvironment.

DETAILED DESCRIPTION

The subject matter of select embodiments of the invention is describedwith specificity herein to meet statutory requirements. But thedescription itself is not intended to necessarily limit the scope ofclaims. Rather, the claimed subject matter might be embodied in otherways to include different steps or combinations of steps similar to theones described in this document, in conjunction with other present orfuture technologies. Terms should not be interpreted as implying anyparticular order among or between various steps herein disclosed unlessand except when the order of individual steps is explicitly described.

The claimed subject matter is now described with reference to thedrawings, wherein like reference numerals are used to refer to likeelements throughout. In the following description, for purposes ofexplanation, numerous specific details are set forth in order to providea thorough understanding of the claimed subject matter. It may beevident, however, that the claimed subject matter may be practicedwithout these specific details. In other instances, well-knownstructures and devices are shown in block diagram form in order tofacilitate describing the claimed subject matter.

As used in this application, the terms “component,” “module,” “system”,“window”, “desktop”, or the like are generally intended to refer to acomputer-related entity, either hardware, a combination of hardware andsoftware, software, or software in execution. For example, a componentmay be, but is not limited to being, a process running on a processor, aprocessor, an object, an executable, a thread of execution, a program,and/or a computer. By way of illustration, both an application runningon a controller and the controller can be a component. One or morecomponents may reside within a process and/or thread of execution and acomponent may be localized on one computer and/or distributed betweentwo or more computers.

Furthermore, the claimed subject matter may be implemented as a method,apparatus, or article of manufacture using standard programming and/orengineering techniques to produce software, firmware, hardware, or anycombination thereof to control a computer to implement the disclosedsubject matter. The term “article of manufacture” as used herein isintended to encompass a computer program accessible from anycomputer-readable device or media. For example, computer readable mediacan include but are not limited to magnetic storage devices (e.g., harddisk, floppy disk, magnetic strips . . . ), optical disks (e.g., compactdisk (CD), digital versatile disk (DVD) . . . ), smart cards, and flashmemory devices (e.g., card, stick, key drive . . . ). Of course, thoseskilled in the art will recognize many modifications may be made to thisconfiguration without departing from the scope or spirit of the claimedsubject matter.

Moreover, the word “exemplary” is used herein to mean serving as anexample, instance, or illustration. Any aspect or design describedherein as “exemplary” is not necessarily to be construed as preferred oradvantageous over other aspects or designs. Rather, use of the wordexemplary is intended to present concepts in a concrete fashion. As usedin this application, the term “or” is intended to mean an inclusive “or”rather than an exclusive “or”. That is, unless specified otherwise, orclear from context, “X employs A or B” is intended to mean any of thenatural inclusive permutations. That is, if X employs A; X employs B; orX employs both A and B, then “X employs A or B” is satisfied under anyof the foregoing instances. In addition, the articles “a” and “an” asused in this application and the appended claims should generally beconstrued to mean “one or more” unless specified otherwise or clear fromcontext to be directed to a singular form.

As used herein, the terms to “infer” or “inference” refer generally tothe process of reasoning about or inferring states of the system,environment, and/or user from a set of observations as captured viaevents and/or data. Inference can be employed to identify a specificcontext or action, or can generate a probability distribution overstates, for example. The inference can be probabilistic—that is, thecomputation of a probability distribution over states of interest basedon a consideration of data and events. Inference can also refer totechniques employed for composing higher-level events from a set ofevents and/or data. Such inference results in the construction of newevents or actions from a set of observed events and/or stored eventdata, whether or not the events are correlated in close temporalproximity, and whether the events and data come from one or severalevent and data sources.

Referring now to the drawing, with reference initially to FIG. 1, acomputer implemented system 100 that can extend an operating systemwindow manager Application Programming Interface (API), is depicted.Generally, the system 100 can include an operating system window manager102 configured to display a window 104. The window manager 102 can alsodisplay window contents 106 ₁-106 _(N) for the window 104. The windowcontents 106 ₁-106 _(N) can be referred to herein either collectively orindividually as window content(s) 106 even though each of the windowcontents 106 can have unique characteristics that is distinguishing fromother window contents 106. The window contents 106 can be, for example,directories, files, informational features, aesthetic features, links,utilities, etc. The window contents 106 are typically included within aprimary surface 108 of the window 104, which is normally the total areaencompassed by the window 104 and further detailed in connection withFIG. 2, infra.

The system 100 can also include a rotation API 110 that can extend thewindow manager 102. In accordance with one aspect of the claimed subjectmatter, the rotation API 110 can rotate the window 104 about 180 degreesto expose a secondary surface (not shown). For example, the window 104can be a two-dimensional window displayed within the context of adesktop operating environment, wherein the window can be rotated about ay-axis (of course rotation about the x-axis is equally possible) toexpose the “backside” or counter-side, which is referred to herein asthe secondary surface. It is to be appreciated that the window 104 neednot be limited only to windows, but can also include virtually anyfeature of a desktop user interface such as icons, menus, tabs (e.g.,tabs or icons in a task bar or side bar, etc.), splash screens, etc., oreven the entire desktop.

Irrespective of the particular embodiment, conventional windows (e.g.,the conventional counterpart of window 104) are typically thought of assingle-sided objects to display content. However, the claimed subjectmatter introduces the notion that certain user interface objects (e.g.,window 104) can have a secondary surface (e.g., one or more additionalsurfaces) that can be exposed under certain circumstances in order toreveal alternative content that can differ from the window content 106.Hence, the claimed subject matter can be thought of as constructingdouble-sided (or multi-sided) objects out of traditional single-sidedwindows or other graphical objects in a manner that can be appliedbeyond the context of a single application. It is also to be appreciatedthat the rotation API 110 and/or the window manager 102 can output anaudio object such as a “swoosh” sound in connection with rotating thewindow 104 to reveal the secondary surface or alternative content (bothof which are further detailed with reference to FIG. 3).

With reference to FIG. 2, a graphical representation of an examplewindow 104 can be found. It is to be appreciated that the illustratedwindow 104 is merely exemplary in nature, intended to provide oneconcrete example of a window 104, but is not intended to be limiting asother types of window 104 are contemplated (e.g., icons, menus, tabs, adesktop, . . . ) and considered to be within the scope of the appendedclaims. As depicted, the window can include a variety of window content106 such as files and folders, links, reference information, etc., aswell as aesthetic characteristics. The window content 106 can includevirtually any feature included within the primary surface 108 and istypically managed by a window manager (e.g., window manager 102 fromFIG. 1).

It can be appreciated that while the window 104 is intended to be avirtual object, for example, existing within a desktop environment for agiven computer operating system, if the window 104 existed as a physicalobject such as a piece of paper, then an observer could turn or flip thepaper over to reveal an entirely different surface, potentiallycomprising additional content. By proxy, extending this notion to avirtual domain, the window 104 can be rotated to expose a secondarysurface, as described more thoroughly infra with reference to FIG. 3.

Turning now to FIG. 3, a computer-implemented system 300 with anextended window manager and a selection component is illustrated. Thesystem 300 can include the window manager 102 that can display a window104 and associated window content 106 on the primary surface 108 of thewindow 104. In addition, the window manager 102 can include the rotationAPI 110 that can rotate the window 104 to expose a secondary surface308, as substantially described supra. The system 300 can also include aselection component 302 that can select alternative content 304 for thewindow 104. For example, the selection component 302 can selectalternative content 304 for display on the secondary surface 308. Theselection component 302 can select the alternative content 304 from acontent store 306 that can, e.g., include all available and/or potentialalternative content 306, and, as will be further detailed, infra, thealternative content can be displayed on the secondary surface 308 of thewindow 104 (e.g., after the window 104 has been rotated to expose thesecondary surface 308).

While still referencing FIG. 3, but referring briefly to FIG. 4, avariety of examples of alternative content are depicted. For example,the alternative content 304 can be an advertisement 402. Theadvertisement 402 can be for a particular product or service, or a moregeneral trade or brand name advertisement. It is to be appreciated thatthe advertisement 402 can be either related or entirely unrelated to thewindow content 106 that is extant on the primary surface 108. As asecond example, the alternative content 304 can be additional contentinformation 404 such as detailed properties (e.g., location, date,history, update data, links, contextual data . . . ) relating to thewindow content 106 that are not displayed on the primary surface 108.For instance, if the window 104 is, say, an icon to launch anapplication, the secondary surface 208 can be programmatically assignedalternative content 304 in a similar manner as the application vendorprograms the features of the icon on the primary surface 104.

Additionally or alternatively, the alternative content 304 can be aformat or schema 406 from the window content 106. For example, if a userappreciates different visualizations for window content 106, a firstpreference can be set for the window content 106 on the primary surface(e.g., display window contents 106 in a tiled format) and a secondpreference can be set for the alternative content 304 extant on thesecondary surface 308 (e.g., to display window contents 106 as a list).Accordingly, the user can quickly switch between visualizations of thewindow contents 106 by providing a convenient command (described infra)to rotate the window rather than manually setting and resetting thepreferences each time a new view is desired.

Other forms of alternative content 304 can include a reward 408 orincentive 410. It is readily apparent that since alternative content 304can be advertisements 402, associated advertisers will likely want toencourage users to view the alternative content 304 (e.g., by exposingthe secondary surface 308) as well as to prevent “banner blindness”. Oneor both of these objectives, as well as others, can be achieved byproviding a potential for rewards 408 such as free prizes, redeemablepoints or the like, or incentives 410 such as coupons, interestinginformation, entertainment and so forth. Accordingly, alternativecontent 304 can also be a game 412 such as trivia, fun facts, a puzzle,etc. For example, the window 104 can be a dialog box the displays theprogress of an installation or update of an application. A user couldprovide a command to rotate the dialog box to reveal a game 412 tooccupy the time while the application installs. It should be understoodthat rewards 408, incentives 410 and/or games 412 need not be associatedwith advertisers. For example, an operating system provider (orapplication provider or window manager provider) could provide therewards as a way of introducing features of the claimed subject matterto end users.

Still referring to FIG. 3, it should be appreciated and understood thatthe alternative content 304 (e.g., residing in the content store 306)can be dynamically updated by way of, for example, a wide area networksuch as the Internet by means of updater software or the like known inthe art. Once the selection component 302 selects the appropriatealternative content 304, one of (depending upon the actualimplementation) the window manager 102 or the rotation API 110 can adaptthe alternative content 304 for display within the secondary surface 308of window 104. In accordance therewith, the window manager 102 (or therotation API 110) can rotate the window based upon an occurrence of anevent, thus exposing the secondary surface 308 and exposing thealternative content 304. The text associated FIGS. 5-7 covers a numberof the aforementioned aspects in greater detail and is indented to beread in connection with FIG. 3 as well.

Turning now to FIG. 5, a block diagram of a system 500 that selectsalternative content is shown. In particular, system 500 illustrates avariety of means by which the selection component 302 can select thealternative content 304. In one aspect, the alternative content can beselected based upon a size or dimensions 504 of the window 104. Forexample, the selection component may select an advertisement from aparticular advertiser but chose from several distinct advertisementsfrom that advertiser based upon the size or dimensions 504 of the window104. Continuing the example of an advertisement, the selection component302 can select alternative content 304 based upon demographicinformation 506 related to a host computer or user of the computer. Forinstance, the selection component 302 can select an advertisement basedupon passed purchases (e.g., online purchases), which can also be storedin the content store 306.

In addition, while demographics information is a common feature in thedomain of ad targeting, the demographic information 506 can be privacycentric. For example, the content store 306 can potentially be populatedby a wide variety of information about the user(s) of the host computersuch as past purchases, but also other very rich information such aspersonal income, expenses, and other financial data (e.g., included infinancial applications or the like). While the common procedure for adtargeting is to disclose personal information to a third party, whichusers are often loath to do, the selection component 302 can employdemographics information 506 to select the ad without sharing thedemographics information 506 with the advertiser. Rather, suchinformation can remain private. Accordingly, advertisers can provideads, but the ad-targeting can be performed locally by a local and secureselection component 302.

In accordance with another aspect, the alternative content 304 can beselected based upon historical data 508 associated with a user such as ahistory of behavior or the like. For example, if the user generallyimmediately commands the secondary surface 308 to be reverted back tothe primary surface 108, thereby providing a history of interaction thatcould suggest certain types of alternative content 304 are not ofinterest, the selection component 302 can, e.g., choose other types ofalternative content 304. It is also to be appreciated that thealternative content 304 can be selected in conjunction with the windowcontents 510 (e.g., window content 106). For instance, the alternativecontent 304 can be selected based upon a relationship with the windowcontent 104, 510 located on the primary surface. The window 104 can be,e.g., a display for a media player wherein the window content is theoutput of a Digital Versatile Disc (DVD) and the secondary surface 308can include alternative content 304 that is, e.g., a commercial, deletedscenes, directory commentary or the like, all of which are related tothe window content 104.

According to another aspect of the claimed subject matter, the selectioncomponent 302 can select the alternative content 304 based upon a timeor location 512. As one example, different alternative content 304 canbe selected based upon the time of the day (e.g., an ad for a breakfastmuffin versus an ad for a dinner entrée), or, based upon a location(e.g., an ad for a local restaurant), which can be especially useful inthe case in which the host computer is a mobile device such as a cellphone or handheld device. Additionally, the alternative content 514 canbe selected based upon a bidding model 514. For instance, authors ofalternative content 306 can place bids to purchase the display of thatparticular alternative content 306. While this is especially useful forad-based alternative content 304, such need not be the case. The biddingmodel 514 can include bid price, the content author's reputation, thesize of the secondary surface 308, as well as other criteria well-knownin the ad-auction space or other bid-based domains. Finally, theselection component 302 can select the alternative content 304 basedupon preferences, such as default preferences set by the provider of thewindow manager and/or preferences chosen by a user of the host computer.

While a number of examples have been illustrated, it is to beappreciated that the selection component 302 can also employ other meansof selecting the alternative content 304. Hence, while the aspectsdescribed by reference numerals 504-516 provide concrete examples forcontext, these aspects are not intended to be limiting. Thus, theselection component 302 can employ any combination of the elements504-516 as well as other criteria. Moreover, the system 500 can alsoinclude an intelligence component 518 that can be operatively coupled toor embedded within the selection component 302. Typically, theintelligence component 518 can aid in various determinations orinferences such as, in this case, aiding in selecting the alternativecontent 304 based upon various criteria such as one or more of theelements 504-516.

In particular, the intelligence component 518 can examine the entiretyor a subset of the data available and can provide for reasoning about orinfer states of the system, environment, and/or user from a set ofobservations as captured via events and/or data. Inference can beemployed to identify a specific context or action, or can generate aprobability distribution over states, for example. The inference can beprobabilistic—that is, the computation of a probability distributionover states of interest based on a consideration of data and events.Inference can also refer to techniques employed for composinghigher-level events from a set of events and/or data.

Such inference can result in the construction of new events or actionsfrom a set of observed events and/or stored event data, whether or notthe events are correlated in close temporal proximity, and whether theevents and data come from one or several event and data sources. Variousclassification (explicitly and/or implicitly trained) schemes and/orsystems (e.g., support vector machines, neural networks, expert systems,Bayesian belief networks, fuzzy logic, data fusion engines . . . ) canbe employed in connection with performing automatic and/or inferredaction in connection with the claimed subject matter.

A classifier can be a function that maps an input attribute vector,x=(x1, x2, x3, x4, xn), to a confidence that the input belongs to aclass, that is, f(x)=confidence(class). Such classification can employ aprobabilistic and/or statistical-based analysis (e.g., factoring intothe analysis utilities and costs) to prognose or infer an action that auser desires to be automatically performed. A support vector machine(SVM) is an example of a classifier that can be employed. The SVMoperates by finding a hypersurface in the space of possible inputs,where the hypersurface attempts to split the triggering criteria fromthe non-triggering events. Intuitively, this makes the classificationcorrect for testing data that is near, but not identical to trainingdata. Other directed and undirected model classification approachesinclude, e.g., naïve Bayes, Bayesian networks, decision trees, neuralnetworks, fuzzy logic models, and probabilistic classification modelsproviding different patterns of independence can be employed.Classification as used herein also is inclusive of statisticalregression that is utilized to develop models of priority.

With reference now to FIG. 6, a block diagram of a system 600 that canrotate a window based upon an occurrence of an event is illustrated.Generally, the system 600 can include the window manager 102 with therotation API 110 as substantially described supra. For example, thewindow manager 102 and/or the rotation API 110 can supply a rotatecommand 602 in order to facilitate the rotation of window 104 to exposethe secondary surface 308 as well as the alternative contents 304. Therotate command 602 can be generated based upon an event 604.

In accordance with one aspect of the claimed subject matter, the systemcan include an intelligence component 518 as substantially describedsupra in connection with FIG. 5 that is operatively connected to (orembedded within) at least one of the window manager 102 or the rotationAPI 110. The intelligence component 518 can provide for inferences indetermining when to issue an event 604 signifying that the window 104should be rotated to reveal the alternative content 304. Theintelligence component 518 can examine a variety of data and/or datasets including, but not limited to, the elements 606-614, as will bedescribed.

In particular, the intelligence component 518 can obtain a mouse (orother input device cursor) position 606 in order to determine whether anevent 604 should be issued. For example, in some cases, a mouse position606 included within the window 104 may be an indication that the windowis currently in use and should not be rotated. On the other hand, suchas when the window 104 is, say, an icon or another user interface objectthat is not likely to provide substantial I/O interaction, a mouse hovercan be indicative of a desire to see the secondary surface, e.g., afterthe mouse has been over the window for a few moments without any otherinteraction. In addition, the intelligence component 518 can employ aquantum of time 608 in order to provide an inference. For instance, theevent 604 can be generated once during an initial time period for thedisplay of window 104, or the event could be generated periodicallyafter a predetermined amount of time. In addition, the intelligencecomponent 518 can employ time in order to infer how long to expose thesecondary surface 308 as well as what actions or behavior on the part ofa user will revert the window 104 back to the primary surface 108 and/orwindow content 106.

Similar to the notion of a mouse position 606, the intelligencecomponent 518 can also rely upon a determination of the “active” window610, or the window that is currently selected from which to send orreceive information. For example, several windows 104 can besimultaneously visible to a user, but typically, only one window 104 isactive at a given time. Hence, the intelligence component 518 can inferthat the active window 104 should not be rotated but that the othernon-active windows 104 can be. In contrast, potentially based upon othercriteria the intelligence component 518 can infer that the active window104 should be rotated as well.

It is to be appreciated that some windows 104 (e.g., non-active windows104) may be partially or entirely occluded (e.g., percent occluded 612)by other windows 104 (most commonly by an active window, which isnormally on top of other windows). In the case of an entirely occludedwindow, the intelligence component 518 can determine that no rotationevent 604 need be generated since the alternative content 304 would beoccluded as well. However, in some cases, the intelligence component 518can signal that the occluded window 104 can be temporarily brought tothe front such that the alternative content can be visible. In the casewhere the window 104 is partially occluded, the intelligence component518 can also bring the window 104 to the front. Additionally oralternatively, the intelligence component 518 can create a pseudo-window(not shown) comprising the portions that are not occluded and allow thewindow manager 102 to adapt alternative content 304 for secondarysurface 308 with the dimensions of the pseudo window and rotate onlythat portion of the window 104.

According to another aspect, the intelligence component 518 can alsoutilize other interaction 614 or behavior in order to ascertain whetheror not to generate an event 604. For example, if the intelligencecomponent 518 infers that a user of the host computer is engaged in workor another task-oriented endeavor, it can be inferred that anunsolicited event may not be appropriate. However, if the user isengaged in an event that is not task-oriented, then the event (evenunsolicited) can be appropriate.

In accordance with another aspect of the claimed subject matter, theevent 604 can be based upon a command issued by a user (e.g., directlysolicited) of the host computer such as, e.g., a command from a mouse orother input device of the host computer. Such a case can be furtherdetailed with reference to FIG. 7.

Turning now to FIG. 7, an example system 700 that can display a windowwith embedded rotation features is depicted. The system 700 can includethe window manager 102 that can display a window 104. In addition, thesystem 700 can include the rotation API 110 that can rotate a window toexpose a secondary surface and/or reveal alternative content includedwithin the secondary surface. A common feature associated withconventional windows is a group of easily accessible commands to close,move, resize, maximize, restore, or minimize the window. Oftentimes,these commands can be referenced by clicking a convenient button,normally along the upper border of the window.

Reference numeral 702 shows an example close button to close (e.g.,destroy) the window 104. Conventional systems generally remove thewindow when a user clicks on the close 702 button, although in manycases, a window manager will accompany this action with some sort ofanimation. Reference numeral 704 depicts a restore button that restore awindow 104 that is maximized to a smaller size, generally with theposition and dimensions the window 104 held before it was maximized. Ifthe window 104 is not currently maximized, the min/max button 704 willtypically maximize the window 104. In either case, it is common toaccompany this action as well with some type of brief animation.Reference numeral 706 denotes an example minimize button, for whichactivation will generally remove the window 104 from the display, wherethe window 104 can be redisplayed by clicking a tab in, e.g., a taskbar. As with the other buttons 702 and 704, activating the minimizebutton is generally accompanied by an animation such as the windowshrinking down to the task bar or some other location where it can belater referenced.

In accordance with an aspect of the claimed subject matter, a command toclose, minimize, maximize, or restore can serve as the event 604 fromFIG. 6. For example, in addition to or in the alternative to someanimation to signify that the window is closing, being minimized, etc.,the window manager 102 can rotate the window 104 before closing,minimizing, etc. the window 104, thereby revealing alternative contentin a non-invasive manner. Moreover, conventional windows generally allowa user to resize or reposition the window. Generally, a window can beresized by moving the mouse cursor near an edge of the window until thecursor changes shape to indicate a click-and-drag motion will resize thewindow. Similarly, the window is often repositioned by clicking on theupper bar and dragging the window to a new position. In both cases,there are standard features in many desktop environments to allow a userto select a preference to display the contents of the window whilerepositioning (or resizing) or to make the contents transparent duringthat procedure. The claimed subject matter provides for displayingalternative contents during the aforementioned procedures.

In addition, the rotation API 110 can instruct the window manager 102 todisplay a rotate button 708. The rotate button 708 can be inserted inany appropriate window (which can be based upon a common scheme and/orinferred, e.g., by the intelligence component 518). The rotate buttoncan serve as a manual command to generate the event 604. For example,given that the alternative content can be very useful, informative,and/or entertaining; the rotate button 708 can allow convenient accessto the alternative content in a manner employed by conventional buttons702-706. While the rotate button 708 provides one example, it is to beappreciated that other means can be provided to allow a user to revealthe alternative content. For example, the rotate feature can be mappedto a mouse button (e.g., a side or “back” button), placed in an actionbar menu, placed in a context-menu (e.g., accessed by a right-click onthe window), or substantially any other means.

Referring to FIG. 8, a computer-implemented system 800 that canfacilitate display of alternative content is depicted. Although notshown, the system 800 can interface with the window manager 102 (and/orrotation API 110) of FIGS. 1 and 3, for example, as well as a contentstore 810 that can be substantially similar to the content store 306.Generally, the system 800 can include an analysis component 802 that canidentify a computer-based graphical object that is a double-sided object804 or a potentially double-sided object 806. As used herein, adouble-sided object 804 can be a graphical object that is employed as adouble-sided item. One example of a double-sided object 804 is agraphical representation of a playing card associated with acomputer-based card game, which will be further discussed in connectionwith FIG. 9. However, it is to be appreciated that other embodiments ofdouble-sided objects 804 can exist and are to be considered within thescope and spirit of the appended claims. In contrast, a potentiallydouble-sided object 806 is used herein to refer to a graphical objectthat is implemented as a single-sided object, and thus, a secondary sidepotentially exists. Examples of potentially double-sided object 806 caninclude FIG. 2, as well as the description associated with FIG. 1 suchas icons, menus, tabs, splash screens, or even the entire desktop.

In addition, the system 800 can include a content component 808 that canselect alternative content to be displayed on a secondary side of thegraphical object. The content component 808 can select the appropriatealternative content in a manner substantially similar to that describedin connection with the selection component 302 (from FIG. 3). Hence, aswith the selection component 302, the content component 808 can employinferences (and/or be operatively associated with the intelligencecomponent 518) in order to facilitate selection of the alternativecontent, which, as well, can be housed in a content store 810substantially similar to the content store 306.

While still referring to FIG. 8, but turning also to FIG. 9, acomputer-implemented system 900 for displaying alternative content isillustrated. The system 900 can include a graphical object 902, whichcan be either a double-sided object 804 or a potentially double-sidedobject 806. In the instant figure, the graphical object 902 is adouble-sided object 804, since the object is already implemented withtwo sides, a primary side 904 (e.g., the “important” side) with uniquecharacteristics or properties, and the secondary side 906 which includesa card pattern for content and is not of vital importance. It is to beappreciated that the analysis component 802 can infer and/or make adetermination as to which side of the graphical object 902 is theprimary side 904 and which side is the secondary side 906. Once thesecondary side is determined (for the case in which the graphical object902 is a potentially double-sided object 806, this determination istrivial), a rendering component 908 can display the alternative content910 (e.g., supplied by the content component 808) on the secondary side906 of the graphical object 902.

It is to be appreciated that in the case of a double-sided object 804(as is the case in FIG. 9), the original content (e.g., the deckpattern/design) can be overwritten with the alternative content. It isto be further appreciated that the rendering component 908 can overwritethe original content in a manner that is independent from theapplication or API that instantiated the graphical object 902. Thus,while claimed subject matter can function at an operating system windowmanager level to provide additional content 910 rather than at theapplication level.

FIGS. 10, 11, and 12 illustrate various methodologies in accordance withthe claimed subject matter. While, for purposes of simplicity ofexplanation, the methodologies are shown and described as a series ofacts, it is to be understood and appreciated that the claimed subjectmatter is not limited by the order of acts, as some acts may occur indifferent orders and/or concurrently with other acts from that shown anddescribed herein. For example, those skilled in the art will understandand appreciate that a methodology could alternatively be represented asa series of interrelated states or events, such as in a state diagram.Moreover, not all illustrated acts may be required to implement amethodology in accordance with the claimed subject matter. Additionally,it should be further appreciated that the methodologies disclosedhereinafter and throughout this specification are capable of beingstored on an article of manufacture to facilitate transporting andtransferring such methodologies to computers. The term article ofmanufacture, as used herein, is intended to encompass a computer programaccessible from any computer-readable device.

Turning now to FIG. 10, an exemplary computer implemented method 1000for extending an operating system window manager API is illustrated. Ingeneral, at reference numeral 1002, alternative content to be displayedon a secondary surface of a graphical object can be selected. It shouldbe understood that the alternative content can be selected from a verybroad data set that can include, e.g., advertisements, additionalcontent information associated with the original window content,different visualizations for the original content, rewards, incentives,trivia, games, puzzles and so on. In addition, the alternative contentcan be selected based upon numerous criteria, including but not limitedto a size or dimensions of the window, demographic informationassociated with a user or machine, a history of interaction, arelationship with the original window content, a time or location, abidding model, designated preferences, or the like. Accordingly, thebroad data set and/or the numerous criteria can be included in a contentstore.

In addition, at reference numeral 1004, the secondary surface can beoverlaid with the alternative content. In accordance therewith, when thesecondary surface is exposed, alternative content can be revealed.

With reference now FIG. 11, an exemplary computer implemented method1100 with additional features for extending an operating system windowmanager API is depicted. Generally, at reference numeral 1102, adouble-sided graphical object can be identified. For example, adouble-sided graphical object can be a graphical object specificallyimplemented to include two sides, such as a representation of a playingcard associated with a computer-based game. At reference numeral 1104,potential double-sided graphical objects can be identified. Forinstance, graphical object that are implemented as single-sided objectscan be in many cases potential double-sided graphical objects.

At reference numeral 1106, the alternative content (e.g., selected basedupon act 1002 of FIG. 10) can be adapted for display within thesecondary surface of the graphical object, or, in some cases, selectedportions of the secondary surface (e.g., when some percentage of thewindow including the primary/secondary surfaces is occluded). It is tobe appreciated that a window manager can perform the act of adapting insome instances, while in others, an extension to the windows manager inthe form of a rotation API can perform the act of adapting. At referencenumeral 1108, the graphical object can be rotated about an axis (e.g.,an x- or y-axis) to expose the secondary surface, and, thus, revealingthe alternative content.

Turning briefly to FIG. 12, an exemplary computer implemented method1200 with additional features for extending an operating system windowmanager API is depicted. At reference numeral 1202, a window rotationfeature can be implemented in an operating system window manager. Forexample, the window manager can be extended with a rotation API that canrotate a window about an axis to expose a new surface (e.g., thesecondary surface), that can include distinct content (e.g., alternativecontent). At reference numeral 1204, the window rotation feature can beexposed as a rotation icon or button. The rotation button can exist byitself, or can be in addition to other function buttons such as buttonsto close, minimize, restore or maximize the underlying window.

At reference numeral 1206, the window rotation feature can be activatedbased upon receiving an event. In accordance with one aspect of theclaimed subject matter, the event is at least one of a command or aninference. In the case of the former, the command can be in the form ofa click on or input to the rotation button described supra as well as ainput to another function button (e.g., the minimize, maximize, or closebuttons), as well as input to an action menu or context menu. In thecase of the latter, where the event is based upon an inference, theinference can be constructed based upon a variety of factors, such asthose inferences described in connection with the intelligence componentabove.

Referring now to FIG. 13, there is illustrated a block diagram of anexemplary computer system operable to execute the disclosedarchitecture. In order to provide additional context for various aspectsof the claimed subject matter, FIG. 13 and the following discussion areintended to provide a brief, general description of a suitable computingenvironment 1300 in which the various aspects of the claimed subjectmatter can be implemented. Additionally, while the claimed subjectmatter described above can be implemented in the general context ofcomputer-executable instructions that may run on one or more computers,those skilled in the art will recognize that the claimed subject matteralso can be implemented in combination with other program modules and/oras a combination of hardware and software.

Generally, program modules include routines, programs, components, datastructures, etc., that perform particular tasks or implement particularabstract data types. Moreover, those skilled in the art will appreciatethat the inventive methods can be practiced with other computer systemconfigurations, including single-processor or multiprocessor computersystems, minicomputers, mainframe computers, as well as personalcomputers, hand-held computing devices, microprocessor-based orprogrammable consumer electronics, and the like, each of which can beoperatively coupled to one or more associated devices.

The illustrated aspects of the claimed subject matter may also bepracticed in distributed computing environments where certain tasks areperformed by remote processing devices that are linked through acommunications network. In a distributed computing environment, programmodules can be located in both local and remote memory storage devices.

A computer typically includes a variety of computer-readable media.Computer-readable media can be any available media that can be accessedby the computer and includes both volatile and nonvolatile media,removable and non-removable media. By way of example, and notlimitation, computer-readable media comprise computer storage media.Computer storage media can include both volatile and nonvolatile,removable and non-removable media implemented in any method ortechnology for storage of information such as computer-readableinstructions, data structures, program modules or other data. Computerstorage media includes, but is not limited to, RAM, ROM, EEPROM, flashmemory or other memory technology, CD-ROM, digital versatile disk (DVD)or other optical disk storage, magnetic cassettes, magnetic tape,magnetic disk storage or other magnetic storage devices, or any otherdevice which can be used to store the desired information and which canbe accessed by the computer.

Computer-readable media, as used herein, is understood to be exclusiveof communications media. Communication media typically embodiescomputer-readable instructions, data structures, program modules orother data in a modulated data signal such as a carrier wave or othertransport mechanism, and includes any information delivery media. Theterm “modulated data signal” means a signal that has one or more of itscharacteristics set or changed in such a manner as to encode informationin the signal. By way of example, and not limitation, communicationmedia includes wired media such as a wired network or direct-wiredconnection, and wireless media such as acoustic, RF, infrared and otherwireless media.

With reference again to FIG. 13, the exemplary environment 1300 forimplementing various aspects of the claimed subject matter includes acomputer 1302, the computer 1302 including a processing unit 1304, asystem memory 1306 and a system bus 1308. The system bus 1308 couples tosystem components including, but not limited to, the system memory 1306to the processing unit 1304. The processing unit 1304 can be any ofvarious commercially available processors. Dual microprocessors andother multi-processor architectures may also be employed as theprocessing unit 1304.

The system bus 1308 can be any of several types of bus structure thatmay further interconnect to a memory bus (with or without a memorycontroller), a peripheral bus, and a local bus using any of a variety ofcommercially available bus architectures. The system memory 1306includes read-only memory (ROM) 1310 and random access memory (RAM)1312. A basic input/output system (BIOS) is stored in a non-volatilememory 1310 such as ROM, EPROM, EEPROM, which BIOS contains the basicroutines that help to transfer information between elements within thecomputer 1302, such as during start-up. The RAM 1312 can also include ahigh-speed RAM such as static RAM for caching data.

The computer 1302 further includes an internal hard disk drive (HDD)1314 (e.g., EIDE, SATA), which internal hard disk drive 1314 may also beconfigured for external use in a suitable chassis (not shown), amagnetic floppy disk drive (FDD) 1316, (e.g., to read from or write to aremovable diskette 1318) and an optical disk drive 1320, (e.g., readinga CD-ROM disk 1322 or, to read from or write to other high capacityoptical media such as the DVD). The hard disk drive 1314, magnetic diskdrive 1316 and optical disk drive 1320 can be connected to the systembus 1308 by a hard disk drive interface 1324, a magnetic disk driveinterface 1326 and an optical drive interface 1328, respectively. Theinterface 1324 for external drive implementations includes at least oneor both of Universal Serial Bus (USB) and IEEE1394 interfacetechnologies. Other external drive connection technologies are withincontemplation of the claimed subject matter.

The drives and their associated computer-readable media providenonvolatile storage of data, data structures, computer-executableinstructions, and so forth. For the computer 1302, the drives and mediaaccommodate the storage of any data in a suitable digital format.Although the description of computer-readable media above refers to aHDD, a removable magnetic diskette, and a removable optical media suchas a CD or DVD, it should be appreciated by those skilled in the artthat other types of media which are readable by a computer, such as zipdrives, magnetic cassettes, flash memory cards, cartridges, and thelike, may also be used in the exemplary operating environment, andfurther, that any such media may contain computer-executableinstructions for performing the methods of the claimed subject matter.

A number of program modules can be stored in the drives and RAM 1312,including an operating system 1330, one or more application programs1332, other program modules 1334 and program data 1336. All or portionsof the operating system, applications, modules, and/or data can also becached in the RAM 1312. It is appreciated that the claimed subjectmatter can be implemented with various commercially available operatingsystems or combinations of operating systems.

A user can enter commands and information into the computer 1302 throughone or more wired/wireless input devices, e.g., a keyboard 1338 and apointing device, such as a mouse 1340. Other input devices (not shown)may include a microphone, an IR remote control, a joystick, a game pad,a stylus pen, touch screen, or the like. These and other input devicesare often connected to the processing unit 1304 through an input deviceinterface 1342 that is coupled to the system bus 1308, but can beconnected by other interfaces, such as a parallel port, an IEEE1394serial port, a game port, a USB port, an IR interface, etc.

A monitor 1344 or other type of display device is also connected to thesystem bus 1308 via an interface, such as a video adapter 1346. Inaddition to the monitor 1344, a computer typically includes otherperipheral output devices (not shown), such as speakers, printers, etc.

The computer 1302 may operate in a networked environment using logicalconnections via wired and/or wireless communications to one or moreremote computers, such as a remote computer(s) 1348. The remotecomputer(s) 1348 can be a workstation, a server computer, a router, apersonal computer, portable computer, microprocessor-based entertainmentappliance, a peer device or other common network node, and typicallyincludes many or all of the elements described relative to the computer1302, although, for purposes of brevity, only a memory/storage device1350 is illustrated. The logical connections depicted includewired/wireless connectivity to a local area network (LAN) 1352 and/orlarger networks, e.g., a wide area network (WAN) 1354. Such LAN and WANnetworking environments are commonplace in offices and companies, andfacilitate enterprise-wide computer networks, such as intranets, all ofwhich may connect to a global communications network, e.g., theInternet.

When used in a LAN networking environment, the computer 1302 isconnected to the local network 1352 through a wired and/or wirelesscommunication network interface or adapter 1356. The adapter 1356 mayfacilitate wired or wireless communication to the LAN 1352, which mayalso include a wireless access point disposed thereon for communicatingwith the wireless adapter 1356.

When used in a WAN networking environment, the computer 1302 can includea modem 1358, or is connected to a communications server on the WAN1354, or has other means for establishing communications over the WAN1354, such as by way of the Internet. The modem 1358, which can beinternal or external and a wired or wireless device, is connected to thesystem bus 1308 via the serial port interface 1342. In a networkedenvironment, program modules depicted relative to the computer 1302, orportions thereof, can be stored in the remote memory/storage device1350. It will be appreciated that the network connections shown areexemplary and other means of establishing a communications link betweenthe computers can be used.

The computer 1302 is operable to communicate with any wireless devicesor entities operatively disposed in wireless communication, e.g., aprinter, scanner, desktop and/or portable computer, portable dataassistant, communications satellite, any piece of equipment or locationassociated with a wirelessly detectable tag (e.g., a kiosk, news stand,restroom), and telephone. This includes at least Wi-Fi and Bluetooth™wireless technologies. Thus, the communication can be a predefinedstructure as with a conventional network or simply an ad hoccommunication between at least two devices.

Wi-Fi, or Wireless Fidelity, allows connection to the Internet from acouch at home, a bed in a hotel room, or a conference room at work,without wires. Wi-Fi is a wireless technology similar to that used in acell phone that enables such devices, e.g., computers, to send andreceive data indoors and out; anywhere within the range of a basestation. Wi-Fi networks use radio technologies called IEEE802.11 (a, b,g, etc.) to provide secure, reliable, fast wireless connectivity. AWi-Fi network can be used to connect computers to each other, to theInternet, and to wired networks (which use IEEE802.3 or Ethernet). Wi-Finetworks operate in the unlicensed 2.4 and 5 GHz radio bands, at an 11Mbps (802.11a) or 54 Mbps (802.11b) data rate, for example, or withproducts that contain both bands (dual band), so the networks canprovide real-world performance similar to the basic 13 BaseT wiredEthernet networks used in many offices.

Referring now to FIG. 14, there is illustrated a schematic block diagramof an exemplary computer compilation system operable to execute thedisclosed architecture. The system 1400 includes one or more client(s)1402. The client(s) 1402 can be hardware and/or software (e.g., threads,processes, computing devices). The client(s) 1402 can house cookie(s)and/or associated contextual information by employing the claimedsubject matter, for example.

The system 1400 also includes one or more server(s) 1404. The server(s)1404 can also be hardware and/or software (e.g., threads, processes,computing devices). The servers 1404 can house threads to performtransformations by employing the claimed subject matter, for example.One possible communication between a client 1402 and a server 1404 canbe in the form of a data packet adapted to be transmitted between two ormore computer processes. The data packet may include a cookie and/orassociated contextual information, for example. The system 1400 includesa communication framework 1406 (e.g., a global communication networksuch as the Internet) that can be employed to facilitate communicationsbetween the client(s) 1402 and the server(s) 1404.

Communications can be facilitated via a wired (including optical fiber)and/or wireless technology. The client(s) 1402 are operatively connectedto one or more client data store(s) 1408 that can be employed to storeinformation local to the client(s) 1402 (e.g., cookie(s) and/orassociated contextual information). Similarly, the server(s) 1404 areoperatively connected to one or more server data store(s) 1410 that canbe employed to store information local to the servers 1404.

What has been described above includes examples of the variousembodiments. It is, of course, not possible to describe everyconceivable combination of components or methodologies for purposes ofdescribing the embodiments, but one of ordinary skill in the art mayrecognize that many further combinations and permutations are possible.Accordingly, the detailed description is intended to embrace all suchalterations, modifications, and variations that fall within the spiritand scope of the appended claims.

In particular and in regard to the various functions performed by theabove described components, devices, circuits, systems and the like, theterms (including a reference to a “means”) used to describe suchcomponents are intended to correspond, unless otherwise indicated, toany component which performs the specified function of the describedcomponent (e.g., a functional equivalent), even though not structurallyequivalent to the disclosed structure, which performs the function inthe herein illustrated exemplary aspects of the embodiments. In thisregard, it will also be recognized that the embodiments includes asystem as well as a computer-readable medium having computer-executableinstructions for performing the acts and/or events of the variousmethods.

In addition, while a particular feature may have been disclosed withrespect to only one of several implementations, such feature may becombined with one or more other features of the other implementations asmay be desired and advantageous for any given or particular application.Furthermore, to the extent that the terms “includes,” and “including”and variants thereof are used in either the detailed description or theclaims, these terms are intended to be inclusive in a manner similar tothe term “comprising.”

1. A computer-implemented method for extending an operating systemwindow manager Application Programming Interface (API), comprising:implementing, in an operating system window manager executing on acomputing device having a processor, an Application Program Interface(API) that enables a rotation feature that is useable by the windowmanager to rotate a graphical object independent of an application thatinstantiated the graphical object; displaying, by the window manager, aprimary surface of a graphical object and contents associated with andincluded within the primary surface of the graphical object, a secondarysurface of the graphical object being entirely occluded by the primarysurface, the graphical object comprising one or more of an icon, a menu,a tab, a splash screen, a desktop display, a window, a task bar, a sidebar, and a component in a task bar or side bar; and rotating, by thewindow manager using the rotation API, the graphical object to exposethe secondary surface of the graphical object.
 2. The method of claim 1,wherein the graphical object comprises one or more of an icon, a menu, atab, a splash screen, a desktop display, a window, a task bar, a sidebar, and a component in a task bar or side bar.
 3. The method of claim1, further comprising: selecting alternative content for the graphicalobject, wherein at least one of the window manager or the rotation APIadapts the alternative content for display within the secondary surfaceof the graphical object.
 4. The method of claim 3, wherein thealternative content is an advertisement that is associated with thecontent of the graphical object or that is not associated with thecontent of the graphical object.
 5. The method of claim 4, wherein theselection component uses private user data to select the advertisementbased on targeted advertisement.
 6. The method of claim 5, wherein theprivate user data includes one or more of financial, demographic,historical, and activity data of a user.
 7. The method of claim 5,wherein the private user data is stored locally on the computing deviceand is not shared with an advertiser or other third party.
 8. The methodof claim 5, wherein, the selection of the advertisement is performedlocally on the computing device without communicating with a thirdparty.
 9. The method of claim 3, further comprising: identifying aportion of the graphical object that is not occluded by a secondgraphical object, the portion being rotatable by the rotation APIseparately from the remainder of the graphical object to expose thesecondary surface associated with the portion.
 10. The method of claim9, wherein selecting alternative content comprises selecting alternativecontent for the portion of the graphical object.
 11. The method of claim1, wherein the graphical object is at least partially occluded by anactive graphical object, and rotating the graphical object brings thegraphical object to the front to display the secondary surfaceun-occluded by the active graphical object.
 12. A computer-implementedmethod that facilitates display of alternative content, comprising:implementing, in an operating system window manager executing on acomputing device having a processor, an Application Program Interface(API) that enables a rotation feature that is useable by the windowmanager to rotate a graphical object independent of an application thatinstantiated the graphical object; determining, by the operating system,a computer-based graphical object that is double-sided or potentiallydouble-sided; identifying a portion of the graphical object that is notoccluded by a second graphical object; selecting alternative content tobe displayed on a secondary side of only the portion of the graphicalobject based at least in part on dimensions of the portion of thegraphical object; rotating, by the window manager using the rotationAPI, at least the portion of the graphical object to expose thesecondary side of the portion of the graphical object; and displayingthe selected alternative content on the secondary side of the portion ofthe graphical object.
 13. The method of claim 12, wherein the graphicalobject comprises one or more of an icon, a menu, a tab, a splash screen,a desktop display, a window, a task bar, a side bar, and a component ina task bar or side bar.
 14. The method of claim 13, wherein the portionof the graphical object comprises a pseudo-window.
 15. The method ofclaim 12, wherein only the portion of the graphical object is rotated todisplay the alternative content on the secondary side of the portion ofthe graphical object.
 16. A computer-implemented method for extending anoperating system window manager API, comprising: implementing in anoperating system window manager executing on a computing device having aprocessor, an Application Program Interface (API) that enables a windowrotation feature that is useable by the window manager to rotate agraphical object independent of an application that instantiated thegraphical object; displaying a plurality of graphical objects, thegraphical objects comprising one or more double-sided graphical objects,multi-sided graphical object, or single-sided graphical objects that canbe configured to be a double-sided or multi-sided graphical objects;identifying a graphical object that is an active graphical object;rotating, by the window manager using the API, the graphical objectsdifferent from the active graphical object to expose secondary surfacesof the rotated graphical objects.
 17. The method of claim 16, whereinthe active graphical object is identified based on a position of aninput device cursor.
 18. The method of claim 17, wherein the inputdevice corresponds to a touch screen.
 19. The method of claim 16,further comprising rotating the active graphical object.
 20. The methodof claim 16, wherein the graphical object is at least partially occludedby an active graphical object, and rotating the graphical object bringsthe graphical object to the front to display the secondary surfaceun-occluded by the active graphical object.